package cn.iocoder.yudao.module.student.controller.app.student.vo;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.util.Date;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel("管理后台 - 学生管理更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class WebStudentUpdateReqVO extends WebStudentBaseVO {

    @ApiModelProperty(value = "学生id", required = true, example = "1")
    @NotNull(message = "学生id不能为空")
    private Long id;

    @ApiModelProperty(value = "头像", example = "https://demo-oss.oss-cn-beijing.aliyuncs.com/png/ed0913589c5e4abb940bd2457eedf97c.png")
    private String avatar;

    @ApiModelProperty(value = "密码",  example = "123456")
    private String password;

    @ApiModelProperty(value = "注册 IP",  example = "10.255.142.32")
    private String registerIp;

    @ApiModelProperty(value = "最后登录IP",  example = "25.321.21.58")
    private String loginIp;

    @ApiModelProperty(value = "学生大头照",  example = "https://demo-oss.oss-cn-beijing.aliyuncs.com/png/ed0913589c5e4abb940bd2457eedf97c.png")
    private String studentPictureUrl;

    @ApiModelProperty(value = "当前身份", example = "graduates")
    private String identify;

    @ApiModelProperty(value = "性别", example = "1")
    private String sex;

    @ApiModelProperty(value = "身份认证正面图片地址",  example = "https://demo-oss.oss-cn-beijing.aliyuncs.com/png/ed0913589c5e4abb940bd2457eedf97c.png")
    private String authenticationFrontPictureUrl;

    @ApiModelProperty(value = "身份认证反面图片地址",  example = "https://demo-oss.oss-cn-beijing.aliyuncs.com/png/ed0913589c5e4abb940bd2457eedf97c.png")
    private String authenticationBackPictureUrl;

    @ApiModelProperty(value = "政治面貌",  example = "党员")
    private String political;

    @ApiModelProperty(value = "出生日期",  example = "1991-10-25")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date birthday;

    @ApiModelProperty(value = "居住城市",  example = "长沙")
    private String liveCity;

    @ApiModelProperty(value = "毕业时间",example = "2011-10-02")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date graduateTime;

    @ApiModelProperty(value = "民族",  example = "汉族")
    private String clan;

    @ApiModelProperty(value = "邮箱",  example = "chow5945@outlook.com")
    private String email;

    @ApiModelProperty(value = "学历",  example = "本科")
    private String education;

    @ApiModelProperty(value = "年级", example = "研三")
    private String grade;

    @ApiModelProperty(value = "录取方式",  example = "统招")
    private String matriculateWay;

    @ApiModelProperty(value = "是否有学位证书",  example = "true")
    private String diploma;

    @ApiModelProperty(value = "大学名称",  example = "长沙理工大学")
    private String universityName;

    @ApiModelProperty(value = "所学专业", example = "信息工程")
    private String specialty;

    @ApiModelProperty(value = "在校开始日期", example = "2011-09-01")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date universityStartDate;

    @ApiModelProperty(value = "在校结束日期",  example = "2015-07-15")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date universityEndDate;

    @ApiModelProperty(value = "期望行业(可能多个)",  example = "汽车工程")
    private String targetIndustry;

    @ApiModelProperty(value = "期望城市",  example = "长沙")
    private String targetCity;

    @ApiModelProperty(value = "最低薪资",  example = "10000")
    private Integer lowestSalary;

    @ApiModelProperty(value = "最高薪资",  example = "30000")
    private Integer highestSalary;
    /**
     * 是否实名
     */
    private String isRealName;

    private Date postDate;
}
